﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;
using UniCT.LinkShareWpf.Interface;
using System.Collections.ObjectModel;
using LinkShareWpf.ViewModel;
using UniCT.LinkShareWpf.Model;

namespace LinkShareWpf
{
    /// <summary>
    /// Interaction logic for ShowResurce.xaml
    /// </summary>
    public partial class ShowResurce : Window
    {

        public ShowResurce(ObservableCollection<Resource> allResources, Resource res, Type callerType)
        {
            // Definiamo una nuova risorsa qui piuttosto che nello XAML
            // perché essa è istanziata dinamicamente a seconda dello UserControl
            // che lancerà il comando di Show. Occorre eseguire questa istruzione
            // prima dell'inizializzazione della Window,
            // in quanto il codice XAML dovrà trovare tale risorsa già istanziata.
            Resources.Add("CallerType", callerType);
            InitializeComponent();
            (DataContext as ShowResourceViewModel).Resource = res;
            (DataContext as ShowResourceViewModel).AllResources = allResources;
            (DataContext as ShowResourceViewModel).Setting();
            (DataContext as ShowResourceViewModel).CloseWindowRequested+= delegate { Close(); };
            (DataContext as ShowResourceViewModel).MessageBoxRequested += (sender,e) =>
                {
                    MessageBox.Show((e as LinkShareWpf.ViewModel.ShowResourceViewModel.MessageParameterEventArgs).message);
                };
        }

       

    }

}
